10. 逻辑回归模型 (Logistic Regression) |
您所在的位置:网站首页 › logistic p值cutoff › 10. 逻辑回归模型 (Logistic Regression) |
1. 简介
逻辑回归模型需要选择predictor以及它们的具体形式,这其中包含了他们之间的关联项,这一点也保证了逻辑回归在偏小的数据集上面也能得到不错的结果。逻辑回归虽然名字中有回归,但实际上不能用于连续数值的预测,并且他还有一点好处在于一旦逻辑回归的模型建立起来之后,对于大量新数据的分类的计算都会变得十分快速且消耗的计算资源很少。逻辑回归的precditors可以是categorical的,也可以是numerical的,这一点上同multiple linear regression一致,只不过multiple linear regression是对连续的Y值进行预测,然而逻辑回归仅仅是把记录进行分类。逻辑回归的决策边缘是线性的,因此逻辑回归是线性模型。 2. 逻辑回归的功能逻辑回归主要用于下列两种情况: a. 新数据的类别未知,需要根据其predictors将新数据的类别分到已知的类别中(分类问题) b. 数据的类别已知,需要知道能区分开这些类别的factor(profilling问题) 3. 逻辑回归的基本思路,模型逻辑回归的基本思路
a. 首先获取各个类的propensities(属于该类的概率),比如Y=1的propensity就是 逻辑回归的设计思路
从逻辑回归的设计目的开始,逻辑回归的设计主要是为了分类,multilinear regression model输出的是一个连续的预测值Y(其范围可能是 propensity, logit, odds的公式,图像,关系,取值范围 据上面所写,我们对下列函数进行定义和分析: logit函数
a) 定义
odds函数
a) 定义
之所以要把odds这个函数单独拿出来说,是因为odds具有具体的现实含义,odds的定义是属于该class的概率比上属于其他class的概率
sigmoid函数
由logit函数之中,我们看到 总结
a) 杂谈
a. 假如cutoff probability是0.5,则odds的cutoff是 正如之前所提到的,profiling的目的在于寻找能区分开这些类别的factor,这个时候,最适合拿来做分析的函数便是odds,因为odds定义了属于该类与属于其他类之间的比
如果对某一个变量 逻辑回归的核心思想已经清晰了,但是最大的问题是逻辑回归如何求参(各个 Maximum Likelihood
令 maximum likelihood转换成minimize cross-entropy loss 如下图所示,最大似然问题最终会转换成最小化cross-entropy loss问题 对cross-entropy loss的分析 迭代法更新权重 迭代法的核心思想是先初始设置一个值,而后根据每一次迭代产生的loss function通过求出loss对权重的梯度来对原来设置的值进行更新 决策边缘
当得到了 对于逻辑回归的参数更新方法的分析
最大似然的方法相比较multiple linear regression的最小二乘法的鲁棒性要低一些,由于他只是最大得到了似然概率,因此当数据集满足
a. 每个类都有大量的数据
b. 类的概率比值不能太靠近0或者1
c. 模型设定的时候, a. 分类问题 分类问题的evaluation也适用于logistic regression,比如confusion matrix b. ranking问题 ranking问题的目的是要找出特定满足class of interest的记录,比如某电影院的会员制度需要找到向哪些人推荐更容易让他们买下会员(注意这类问题可能会有分类错误导致的额外花费),则可以用cumulative gain chart和decile lift chart来分析,具体表格和图像的画法及说明参见本书的第5章(后续再补上) c. 模型选择 逻辑回归的模型中有时候也要考虑进predictor中的interaction,比如可以用一个新的参数来refelect参数之间的关系,比如A factor和B factor之间可能有关联性,那么可以发展出新的参数A x B来反应他们的关系。但是总的而言,如果模型简单就有比较好的效果,那么还是简单模型依旧优于复杂模型。validation set的准确率也是模型选择中的主要参考指标。 同multiple linear regression一样,逻辑回归也可以用automatic variable selection的方法,比如stepwise, L1, L2 penalty,AIC,BIC等 #逻辑回归之中加入L2 penalty以自动选择variable LogisticRegression(penalty=“l2”, C=1e42) 7 逻辑回归与多分类问题逻辑回归可以从二分类问题拓展到多分类问题,按照这种思路,假设有m个类,那么我们需要得到m-1个probability(这m个probability的加和是1) 多分类有两种情况,一种情况是分类是ordinal的,一种是nominal的 ordinal
这种情况下,比如股票市场的选择,可以是买,保持,卖,他们保持着顺序,这种情况下每一个类对于probability影响的效果是相同的,因此拟合出来的模型的系数(不包括截距)是一致的。
Nominal
Nominal class的特点是每一个类仅仅只是与另一个类不同,但并没有任何顺序,因此对不同的类别用不同的系数来拟合模型。
因为用m-1个类来模拟,因此将剩余的那一个类作为参考类,其他类对于这个类的比为:
python code # nominal logit = LogisticRegression(penalty="l2", solver='lbfgs', C=1e24, multi_class='multinomial') logit.fit(X, y) print(' intercept', logit.intercept_) print(' coefficients', logit.coef_) # ordinal logit = LogisticIT(alpha=0) logit.fit(X, y) print(' theta', logit.theta_) print(' coefficients', logit.coef_) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |